﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using ClinicaDentalApp.Models.Base;

namespace ClinicaDentalApp.Models.Ficha
{
    public class FichaInputModel
    {
        //Datos de CLiente
        [Required(ErrorMessage = "Debe Ingresar un Rut"), Display(Name = "RUT")]
        public string Rut { get; set; }
        [Required(ErrorMessage = "Debe Ingresar el Nombre del Paciente"), Display(Name = "Nombre")]
        public string Nombre { get; set; }
        [Required(ErrorMessage = "Debe Ingresar El Apellido Paterno del Paciente"), Display(Name = "Apellido Paterno")]
        public string ApellidoPaterno { get; set; }
        [Required(ErrorMessage = "Debe Ingresar El Apellido Materno del Paciente"), Display(Name = "Apellido Materno")]
        public string ApellidoMaterno { get; set; }
        //[Required(ErrorMessage = "Debe Ingresar la Fecha de Nacimiento del Paciente"), Display(Name = "Fecha Nacimiento"), Range(typeof(DateTime), "01/01/1900", "01/01/2012")]
        public DateTime FechaNacimiento { get; set; }
        public string Direccion { get; set; }
        [Display(Name="Telefono"),Required(ErrorMessage="Debe Ingresar un telefono valido")]
        public int Telefono { get; set; }
        public string Actividad { get; set; }
        public bool sexo { get; set; }

        //Datos Ficha Cliente
        [Display(Name = "¿Es Diabetico?")]
        public bool IsDiabetico { get; set; }
        [Display(Name = "¿Sufre Cardiopatia?")]
        public bool IsCardiopatia { get; set; }
        [Display(Name = "¿Es Alergico?")]
        public bool IsAlergico { get; set; }
        [Display(Name = "¿Es Hipertenso?")]
        public bool IsHipertenso { get; set; }
        [Display(Name = "¿Esta Embarazada?")]
        public bool IsEmbarazado { get; set; }
        [Display(Name = "Anamnesis Remota")]
        public string AnamnesisRemota { get; set; }


        public FichaInputModel()
        {

        }

        public FichaInputModel(Cliente cliente)
        {
            this.Rut = cliente.Rut.ToString();
            this.Actividad = cliente.Actividad;
            this.Nombre = cliente.Nombre;
            this.ApellidoMaterno = cliente.ApellidoMaterno;
            this.ApellidoPaterno = cliente.ApellidoPaterno;
            this.FechaNacimiento = cliente.FechaNacimiento;
            this.Direccion = cliente.Direccion;
            this.Telefono = cliente.Telefono;
            this.Actividad = cliente.Actividad;
            this.sexo = cliente.Sexo;

            if (cliente.FichaClinicas != null)
            {
                this.IsDiabetico = cliente.FichaClinicas.EsDiabetico.Value;
                this.IsCardiopatia = cliente.FichaClinicas.EsCardiopatia.Value;
                this.IsAlergico = cliente.FichaClinicas.EsAlergico.Value;
                this.IsHipertenso = cliente.FichaClinicas.EsHipertenso.Value;
                this.IsEmbarazado = cliente.FichaClinicas.EsEmbarazo.Value;
                this.AnamnesisRemota = cliente.FichaClinicas.AnamnesisRemota;
            }
        }
        public Cliente GetCliente()
        {
            Cliente cliente = new Cliente();
            cliente.FichaClinicas = new FichaClinica();

            cliente.Rut = int.Parse(this.Rut.Replace(".","").Replace("-",""));
            cliente.Actividad = this.Actividad;
            cliente.Nombre = this.Nombre;
            cliente.ApellidoMaterno = this.ApellidoMaterno;
            cliente.ApellidoPaterno = this.ApellidoPaterno;
            cliente.FechaNacimiento = this.FechaNacimiento;
            cliente.Direccion = this.Direccion;
            cliente.Telefono = this.Telefono;
            cliente.Actividad = this.Actividad;
            cliente.Sexo = this.sexo;

            cliente.FichaClinicas.EsDiabetico = this.IsDiabetico;
            cliente.FichaClinicas.EsCardiopatia = this.IsCardiopatia;
            cliente.FichaClinicas.EsAlergico = this.IsAlergico;
            cliente.FichaClinicas.EsHipertenso = this.IsHipertenso;
            cliente.FichaClinicas.EsEmbarazo = this.IsEmbarazado;
            cliente.FichaClinicas.AnamnesisRemota = this.AnamnesisRemota;
            return cliente;
        }
    }
}